;module ではありませんが良くつかうもの ;【Windowsバージョンチェック、言語チェック】 #uselib "KERNEL32.DLL" #cfunc GetSystemDefaultLangID "GetSystemDefaultLangID" #func VerLanguageName "VerLanguageNameA" sptr, int, int dim stat_version,8 : winver stat_version if stat_version(1) < 5 { dialog "このバージョンの Windows では動作しません。\nWindowsXP 以降でご利用ください。",1,this_apli_name goto *owari_3 } sdim WinLanguage, 50 VerLanguageName GetSystemDefaultLangID(), varptr(WinLanguage), 50 newcom oReg,"VBScript.RegExp" oReg("Pattern") ="日本" ; 検索パターン val_mach=oReg("Test", WinLanguage) delcom oReg if val_mach { ;dialog "日本語やね" }else{ ;dialog "日本語とちゃう" goto *owari_3 } ;【実行ファイル名の取得】 #packopt type 0 #packopt name "テスト" #packopt runtime "hsprt" #uselib "KERNEL32.DLL" #func GetModuleFileName "GetModuleFileNameA" sptr,sptr,sptr ; HMODULE hModule, モジュールのハンドル ; LPTSTR lpFilename, モジュールのファイル名 ; DWORD nSize バッファのサイズ #const MAX_PATH 260 sdim this_apli_name, MAX_PATH if hspstat&1 { ;エディタ実行 }else{ ;exe実行 GetModuleFileName 0,varptr(this_apli_name), MAX_PATH this_apli_name=getpath(this_apli_name,8+1) ; 拡張子、ディレクトリ情報を取り除く dialog ""+this_apli_name } end ;【ログインユーザー情報】 ;ネットワーク上のコンピュータ名 sdim str_pcname,256 str_pcname=sysinfo(2) mes "ネットワーク上のコンピュータ名 : "+str_pcname ;ユーザー名 #uselib "advapi32.dll" #func GetUserName "GetUserNameA" sptr,sptr ; LPTSTR lpBuffer, // 名前バッファ ; LPDWORD nSize // 名前バッファのサイズ sdim str_usr,256 : nSize=256 GetUserName varptr(str_usr), varptr(nSize) ; str_usr=sysinfo(1) と同等 mes "ログイン中のユーザー名 : "+str_usr ;管理者権限については「COM for HSP3」の「●ログインユーザーの権限」の「■管理者権限(Administrator)でのログインを確認」(http://homepage1.nifty.com/woodfields/wftool/com4hsp.html#admin_test)を参照 ;【キャッシュの削除】 #uselib "wininet.dll" #func DeleteUrlCacheEntry "DeleteUrlCacheEntryA" str DeleteUrlCacheEntry "http://www.google.co.jp/" if stat = 0{ mes "キャッシュが見つかりませんでした" }else : if stat = 1{ mes "キャッシュを削除しました!" } ;【ダウンロード】 #uselib "urlmon.dll" #func URLDownload "URLDownloadToFileA"int,str,str,int,int #uselib "wininet.dll" #func DeleteUrlCacheEntry "DeleteUrlCacheEntryA" str // 指定URLのキャッシュを削除 DeleteUrlCacheEntry "http://www.google.co.jp/webhp?oe=Shift_JIS&ie=Shift_JIS" // Googleのトップページを index.htmlというファイル名で保存 (Shift_JIS指定) URLDownload 0,"http://www.google.co.jp/webhp?oe=Shift_JIS&ie=Shift_JIS","index.html",0,0 exist "index.html" if strsize!=-1{ notesel buf noteload "index.html" mesbox buf,640,480,0 } ;【mailto書式】 ;以下のようにmailto書式でメールフォームを作成し、autodropでファイルをドロップすればよい m_adres ="woodfields@nifty.com" ;<= ";"区切りでつづける m_subject="あれこれ" m_cc ="woodfields@nifty.co.jp" ;<= ";"区切りでつづける m_bcc ="woodfields@nifty.ne.jp" ;<= ";"区切りでつづける m_body ="こんにちは%0D%0A次の行%0D%0A次の次の行" newcom oWshShell, "WScript.Shell" if oWshShell("AppActivate", m_subject) { ; ウィンドウタイトルを検索し前面化(先頭文字列でマッチ) 最小化ウィンドウには非対応 }else{ exec "mailto:"+m_adres+"?subject="+m_subject+"&cc="+m_cc+"&bcc="+m_bcc+"&body="+m_body,16 } delcom oWshShell stop ; mailto書式 ; mailto:メールアドレス ; ?subject=メールタイトル ; &CC= カーボーンコピー(Carbon Copy) ; &BCC= ブラインド カーボン コピー (Blind Carbon Copy) ; &SUBJECT= サブジェクト(Subject text) ; &BODY= 本文(Body text) ; rt="%0D%0A" rt="%250D%250A" ; space="&20" ;文例:mailto:woodfields@nifty.com;user@abc.com?subject=件名&cc=woodfields@nifty.co.jp;user2@abc.com&bcc=woodfields@nifty.ne.jp;user3@abc.com&body=本文%0D%0A次行%0D%0A次行 ;【キー送信】 #uselib "user32.dll" #func SendInput "SendInput" int,int,int ; UINT nInputs, // 入力イベントの数 ; LPINPUT pInputs, // 挿入する入力イベントの配列 ; int cbSize // 構造体のサイズ //入力タイプ(type) #const INPUT_MOUSE $00000000 ;マウスイベント #const INPUT_KEYBOARD $00000001 ;キーボードイベント #const INPUT_HARDWARE $00000002 ;ハードウェアイベント //動作を指定するフラグ(dwFlags) #const KEYEVENTF_KEYDOWN $00000000 ;KEYEVENTF_KEYUPを指定しなければ押す事になる #const KEYEVENTF_EXTENDEDKEY $00000001 ;[Shift][矢印キー]等の[拡張キー]を使う場合に指定 #const KEYEVENTF_KEYUP $00000002 ;キーを離す #const KEYEVENTF_UNICODE $00000004 ;wScanにユニコードを使う時に指定 #const KEYEVENTF_SCANCODE $00000008 ;ハードウェアスキャンコードの方を有効にしたい時に指定 #func MapVirtualKey "MapVirtualKeyA" int,int ; UINT uCode, // 仮想キーコードまたはスキャンコード ; UINT uMapType // 実行したい変換の種類 ;例1 [→] MapVirtualKey 39, 0 : scan_code=stat : input_struct(0)=INPUT_KEYBOARD,39+(scan_code<<16),KEYEVENTF_KEYDOWN | KEYEVENTF_EXTENDEDKEY,0,0,0,0 MapVirtualKey 39, 0 : scan_code=stat : input_struct(7)=INPUT_KEYBOARD,39+(scan_code<<16),KEYEVENTF_KEYUP | KEYEVENTF_EXTENDEDKEY,0,0,0,0 SendInput 2,varptr(input_struct),28 ;[→] ;例2 [shift]+[←] MapVirtualKey 16, 0 : scan_code=stat : input_struct(0) =INPUT_KEYBOARD,16+(scan_code<<16),KEYEVENTF_KEYDOWN | KEYEVENTF_EXTENDEDKEY,0,0,0,0 MapVirtualKey 37, 0 : scan_code=stat : input_struct(7) =INPUT_KEYBOARD,37+(scan_code<<16),KEYEVENTF_KEYDOWN | KEYEVENTF_EXTENDEDKEY,0,0,0,0 MapVirtualKey 37, 0 : scan_code=stat : input_struct(14)=INPUT_KEYBOARD,37+(scan_code<<16),KEYEVENTF_KEYUP | KEYEVENTF_EXTENDEDKEY,0,0,0,0 MapVirtualKey 16, 0 : scan_code=stat : input_struct(21)=INPUT_KEYBOARD,16+(scan_code<<16),KEYEVENTF_KEYUP | KEYEVENTF_EXTENDEDKEY,0,0,0,0 SendInput 4,varptr(input_struct),28 ;[shift]+[←]